Будет ли указатель, добавленный в повторяющееся поле, автоматически удален?

Я просмотрел спецификацию и нашел следующую информацию. Краткая версия - это async function desugars к генератору, который дает Promise s. Итак, да, асинхронные функции возвращают обещания.

Согласно tc39 spec , верно следующее:

async function ?

Desugars to:

function ?{ return spawn(function*() , this); }

Где spawn "является вызовом следующего алгоритма":

function spawn(genF, self) {
    return new Promise(function(resolve, reject) {
        var gen = genF.call(self);
        function step(nextF) {
            var next;
            try {
                next = nextF();
            } catch(e) {
                // finished with failure, reject the promise
                reject(e);
                return;
            }
            if(next.done) {
                // finished with success, resolve the promise
                resolve(next.value);
                return;
            }
            // not finished, chain off the yielded promise and `step` again
            Promise.resolve(next.value).then(function(v) {
                step(function() { return gen.next(v); });
            }, function(e) {
                step(function() { return gen.throw(e); });
            });
        }
        step(function() { return gen.next(undefined); });
    });
}

0
задан Nidhoegger 15 January 2019 в 19:48
поделиться

1 ответ

Кто будет отвечать за удаление объектов, созданных с помощью new?

Кто бы ни создал объект, используя new.

Вы создали объект, используя new, поэтому вы несете ответственность за его удаление.

Я знаю, что если вы используете функцию set_allocated, то protobuf позаботится об удалении, если вы не вызовете release

Correct. Если вы передаете право владения указателем куда-либо еще, ответственность за удаление ложится на владельца. Если вы не передадите право собственности (как в примере программы), то ответственность остается за вами. Если вы не удалите его, то утечка памяти.

0
ответ дан eerorika 15 January 2019 в 19:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: