【发布时间】:2023-03-13 06:00:01
【问题描述】:
这个函数:
function print(){
console.log('num 1')
setTimeout(() => {
global.name = 'max'
console.log('num 2')
},9000);
console.log('num 3');
}
print();
console.log(global.name)
正在打印这个:
num 1
num 3
undefined
num 2
我需要:
- 打印
num 1 - 等到 9 秒
- 设置
global.name=max - 打印
num 2 - 打印
num 3 -
console.log(global.name) - 打印
max而不是undefined
我用python写了这段代码,它逐行执行 因为没有什么叫做同步和异步。
我需要像 python 一样执行这段代码(逐行)
【问题讨论】:
-
代码正在逐行执行。
setTimeout()API 安排在未来某个时间调用一个函数,但setTimeout()本身会立即返回。 -
好的,如果我需要它来打印
num 1并让它等到 9 秒结束然后设置global.name=max然后打印num 2,num 3然后通过console.log(global.name)打印max而不是undefined -
你需要使用promise stackoverflow.com/questions/35544073/…
-
你需要使用promise或者回调函数stackoverflow.com/questions/35544073/…
-
我知道这一点,要理解我的意思,请随时查看此文件drive.google.com/file/d/1gkMBXOusP8k93fMvs7uFnSXAVP9CocBb/view 这里我在上下文中设置 ```Discovery_context: global.Discovery_context``` 我在运行此代码时我第一次得到 global.Discovery_context 是未定义的,所以如果你试图在 updateMessage 函数之外打印它,你将得到未定义我该如何解决这个问题?
标签: javascript node.js chatbot watson-assistant watson-discovery