javascript - setTimeout と Promise に関する疑問
代言
代言 2017-06-12 09:21:50
0
5
780

setTimeout(resolve('World'), ms);setTimeout(resolve, ms, 'World'); の違いがわかりません。

リーリー
代言
代言

全員に返信(5)
習慣沉默

これが func() と func の違いです。 setTimeout の最初のパラメータは func() が使用される場合、その戻り値は最初のパラメータと同等です。
例:

リーリー

次とほぼ同等:

リーリー
いいねを押す +0
三叔

関数名ではなく、渡された最初のパラメータがすぐに実行されます

いいねを押す +0
淡淡烟草味

Promise无关,当你执行到setTimeout(resolve('World'), ms);时,浏览器就已经自动执行了resolve('World')、例:

リーリー

この時点ですぐに実行test

いいねを押す +0
曾经蜡笔没有小新

setTimeout の最初のパラメータは関数である必要があります

関数

関数

(なぜ多くの人が理解できないのか)

setTimeout(resolve, ms, 'World'); 其中 resolve 是一个函数,因此这段的行为正常
setTimeout(resolve('World'), ms); 其中 resolve('World') 不是函数,是什么决定于 resolve 的返回值类型,但无论如何,resolveタイマーを登録した時点ではすでに実行されているので、当然遅延効果はありません

いいねを押す +0
巴扎黑

====================================
次の回答は無効です: 私はレビューしませんでした慎重に質問してください。 。
一般的には違いはありません。

ただ! ! ! !

IE ブラウザでの setTimeout(resolve, ms, 'World') のサポートに問題があります。 (IE

参考資料:(中の黄色背景のメモを参照)

WindowOrWorkerGlobalScope.setTimeout()

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!