说我有一个功能对象 -
setObj : function(a,b){ obj.a = a; obj.b = b; }
如果我必须在此函数对象上使用async&await,我该怎么做?
如果在功能(功能方式)中写入相同的内容,请说 -
async function setObj(a,b){ obj.a = a; obj.b = b; } await setObj(2,3);
这很好用.但是,如果是函数对象,我该怎么办呢?
如果我理解你的问题,你可以async
在方法声明前面使用关键字:
let obj = {}; let myObj = { async setObj(a,b) { obj.a = a; obj.b = b; } }
见http://tc39.github.io/ecmascript-asyncawait/#async-methods
UPDATE
您不能await
在异步功能之外使用.为了使用它,你必须将该调用包装为await setObj(2, 3)
:
async function consoleLog() { await myObj.setObj(2, 3); console.log(obj.a + obj.b); } consoleLog();
async
在对象的属性中使用相同的关键字:
(async function () { var obj = {}; console.log("hello"); let setObj = async function (a,b){ obj.a = a; obj.b = b; }; await setObj(2,3); console.log(obj.a+obj.b); })();
请注意,整个代码都包含在异步自调用函数中.这是必需的,否则await setObj
将无法正常运行.