首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用函数回调封装JavaScript

用函数回调封装JavaScript
EN

Stack Overflow用户
提问于 2014-11-10 22:42:14
回答 1查看 39关注 0票数 0

我有一个有很多代码行的铬线分机。越来越多的人要求我在其他浏览器(比如firefox)上提供这个扩展。

因为它是一个chrome扩展,所以包含了许多特定于铬的函数.开始时,我希望将所有特定于铬的方法放在javascript文件"chrome.js“中,并用自己的方法封装铬函数,这样我就可以轻松地创建其他特定于浏览器的方法。

对于简单的方法来说,这是非常容易的:

代码语言:javascript
代码运行次数:0
运行
复制
function geti18nMessage(messageId) {
   return chrome.i18n.getMessage(messageId)
}

但是如何封装返回函数的(异步)方法

示例:

代码语言:javascript
代码运行次数:0
运行
复制
chrome.runtime.sendMessage(
            {
                Action: "Load"
            }, function (response)
    {
    console.log("response is "+response);
    });

这并不是真正的铬特定,但铬问题是一个现实世界的例子,我的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-10 22:50:17

您可以像任何其他参数一样传递函数:

代码语言:javascript
代码运行次数:0
运行
复制
function sendMessage(options, fn) {
   return chrome.runtime.sendMessage(options, fn);
}

这假设您在所有平台上都使用相同的Chrome回调方案。如果您想将回调自定义为您自己的设计,那么您可以这样替换它:

代码语言:javascript
代码运行次数:0
运行
复制
function sendMessage(options, fn) {
   return chrome.runtime.sendMessage(options, function() {
       // do any processing of the chrome-specific arguments here
       // then call the standard callback with the standard arguments you want to
       // support on all platforms
       fn(...);
   });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26854397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档