所以,第一次嘗試setImmediate. 它似乎無法運行私有類方法。是這樣嗎?如果是,有人可以向我解釋為什么嗎?
不作業
私有類方法作為
setImmediate. 投擲Callback must be a function. Received undefined
class TestPrivate {
public start(): void {
setImmediate(this.looper);
}
async looper(): Promise<void> {
console.log(`${new Date().toLocaleString()}`);
await sleep(500);
setImmediate(this.looper);
}
}
const testPrivate: TestPrivate = new TestPrivate();
testPrivate.start();
這確實有效
靜態類方法作為引數
setImmediate
class TestStatic {
public start(): void {
setImmediate(TestStatic.looper);
}
static async looper(): Promise<void> {
console.log(`${new Date().toLocaleString()}`);
await sleep(500);
setImmediate(TestStatic.looper);
}
}
const testStatic: TestStatic = new TestStatic();
testStatic.start();
uj5u.com熱心網友回復:
如果您通過this.looper,那么在呼叫函式時,looper 將不再具有對 的正確參考this,因此這會在第二次迭代時中斷。
使用以下方法之一解決此問題:
setImmediate(this.looper.bind(this));
setImmediate(() => this.looper);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/469075.html
標籤:javascript 节点.js 异步等待 事件循环 立即设置
上一篇:訪問陣列中的JSON值
下一篇:用JS過濾HTML串列
