异步功能 - 我需要.done()吗?它的目的是什么?

时间:2016-02-09 22:54:46

标签: javascript async-await ecmascript-next

我在我的React代码中有这个:

componentWillMount() {
  this._getAuthCookie().done();
}

async _getAuthCookie() {
//...

我从其他地方复制了结构,但我想知道.done()是否必要,如果是,为什么?

1 个答案:

答案 0 :(得分:0)

ES2016 + async / await内部实现为ES Promises。

.done()不是(感谢GregL)Promise接口的一部分,这意味着它可能会失败,除非使用实现.done()的polyfill。

在提供.done()的promises实现中,它接受一个函数作为其参数,将在解析promise时调用,例如:something.done(function() { console.log("I'm done"); });

在这种情况下,它没有任何用处(因为你没有向它传递任何回调)并且可以删除。