0

30 秒待ってから、30 秒ごとに API のポーリングを開始したいと考えています。次のコードを使用しています

  setTimeout(function() {
    var poll = setInterval(function() {
      self.poll()
    }.bind(self), 30000)
  }, 30000);

ただし、これは Windows の Chrome IE と FF および safari でうまく機能します。MAC サファリでは動作しません。

誰でもこれについて私を案内してもらえますか??

よろしく。

4

1 に答える 1

2

問題は、少し古いバージョンの Safari を使用している可能性があります。

SafariはFunction.prototype.bind比較的最近獲得しました。あなたがすべきことは、それをテストし、存在しない場合はシムを適用することです.

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind#Compatibility

確認するには、単純なconsole.logoralertを実行しFunction.prototype.bindます。出てくると思いますundefined

于 2012-11-14T01:57:52.407 に答える