拨打电话并不实际调用它

时间:2015-02-13 15:33:06

标签: javascript google-chrome google-chrome-extension callback coffeescript

我在后台页面中将此函数用作onMessage侦听器:

dispatchMessage = (request, sender, sendResponse) ->
    return if not request.type?

    log "Request '#{request.type}' form #{sender.tab.id}"
    log request

    switch request.type
        when "setAssociationMainFrame" then setAssociationMainFrame request.frame

        when "sendMe"
            chrome.tabs.sendMessage sender.tab.id,
                request.message,
                (response) ->
                    sendResponse response

        when "inventaireCosium"
            displayPageAction sender.tab.id,
                "Inventaire Cosium",
                "/src/html/inventaire/pageAction.html"

        when "startInventaireCosium"
            log request.type
            sendResponse()

    return

问题是,当我收到“sendMe”消息时,回调sendResponse不起作用。我没有得到任何异常或错误,但我传递给sendMessage参数的函数不是调用。

编辑:我还发布了以前的coffescript的javascript traduction:

// Generated by CoffeeScript 1.9.0
var dispatchMessage;

dispatchMessage = function(request, sender, sendResponse) {
  if (request.type == null) {
    return;
  }
  log("Request '" + request.type + "' form " + sender.tab.id);
  log(request);
  switch (request.type) {
    case "setAssociationMainFrame":
      setAssociationMainFrame(request.frame);
      break;
    case "sendMe":
      chrome.tabs.sendMessage(sender.tab.id, request.message, function(response) {
        return sendResponse(response);
      });
      break;
    case "inventaireCosium":
      displayPageAction(sender.tab.id, "Inventaire Cosium", "/src/html/inventaire/pageAction.html");
      break;
    case "startInventaireCosium":
      log(request.type);
      sendResponse();
  }
};

0 个答案:

没有答案