相关疑难解决方法(0)

如何在顶层使用async/await?

我一直在浏览async/await,经过几篇文章后,我决定自己测试一下.但是,我似乎无法理解为什么这不起作用:

async function main() {  
    var value = await Promise.resolve('Hey there');
    console.log('inside: ' + value);
    return value;
}

var text = main();  
console.log('outside: ' + text);
Run Code Online (Sandbox Code Playgroud)

控制台输出以下内容(节点v8.6.0):

>外面:[对象承诺]

>里面:嘿那里

为什么函数内部的日志消息会在之后执行?我认为创建async/await的原因是为了使用异步任务执行同步执行.

有没有办法可以使用函数内部返回的值而不使用asyncafter await

javascript node.js async-await ecmascript-2017

117
推荐指数
9
解决办法
4万
查看次数

有没有一种方法可以在不恢复调试器的情况下评估nodejs中的promise?

如果我输入debugger并想检查一下。但是调用该函数会返回一个Promise,然后我被困住了。

例如:

我输入调试器,它停止了。

function test(db) {
    debugger;
    // here i want to see something
    var a = .....;
}
Run Code Online (Sandbox Code Playgroud)

但是如果我输入

let d = db.User.create(); 
Run Code Online (Sandbox Code Playgroud)

我去拿

Promise { pending }
Run Code Online (Sandbox Code Playgroud)

现在没有追索权。我不能简单地评估承诺。Kinda使整个调试器的用处不大。

这是没有问题的,如果它是同步的,我将能够跳入程序中间,检查一些内容并根据自己的喜好修改程序,然后运行程序的其余部分。

javascript node.js promise

13
推荐指数
1
解决办法
535
查看次数

顶级等待在 ECMAScript 中不起作用

我很困惑,因为我读到 ESM 支持顶级等待,但是当我在 html 文件中尝试它时它不起作用?

我是否发现这样说: 顶级等待不适用于节点 14.13.- “顶级等待仅适用于 ESM 模块”

ESM 是否支持顶级等待以及如何使用它。

document.getElementById('foo').innerHTML = 'hello1';
await pause(2000); // is this possible if so how
document.getElementById('foo').innerHTML = 'hello2';
Run Code Online (Sandbox Code Playgroud)

javascript async-await es6-modules top-level-await

0
推荐指数
1
解决办法
1419
查看次数