簡體   English   中英

為什么我的 settimeout 沒有在導入的模塊中觸發?

[英]Why isn't my settimeout firing inside an imported module?

我有一個 Vue 組件,它這樣導入一個模塊:

import { sendMsg } from './assets/modules/messages'

sendMsg看起來像這樣(為簡潔起見進行了簡化)。 有一個setTimeout()來添加一個人為的(類似人類的)延遲,這樣系統就不會立即回復。

export const sendMsg = async msg => {
    console.log(1); //happens
    await new Promise(res => setTimeout(res, 1000));
    console.log(2); //doesn't happen
}

...但是在超時觸發后什么也沒有,因為超時沒有解決。

如果我將所有代碼直接移動到組件中,而不是從模塊中調用它,它就可以正常工作。 我搜索了“javascript interval not firing inside module”但沒有找到任何東西。 我錯過了什么?


更新:這在被App.vue調用時發生。 如果我從子組件導入/調用 function,它工作正常......

我認為您還沒有閱讀有關 javascript 的文檔。它是異步的,不會等待事件並繼續處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM